<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <script>
            const str = 'java Java'
            // 用于匹配字符串中字符组合的模式
            // 方式一
            const reg = /java/ig // 定义规则


            // 方式二

            // 元字符：边界符 量词 字符类
            // 边界符：^ 以开始 $ 以结束 如果同时使用，表示精确匹配
            console.log(/^hello$/.test(str)) // false
            console.log(/ld$/.test(str)) // true
            // 量词：* 0个或多个 + 1个或多个 ? 0个或1个 {n} n个 {n,} 至少n个 {n,m} n到m个

            // 字符类：[abc] 匹配a或b或c [a-z] 匹配a到z的任意字符 [^abc] 匹配除了a b c之外的任意字符 . 匹配除了换行符之外的任意字符
            // /^[abc]$/ 这是精确匹配，只能是a b c中的一个， ab这种就不行
            // /[a-z0-9A-Z]/ 匹配字母和数字

            // 预定义类：\d 匹配数字 \D 匹配非数字 \w 匹配字母数字下划线 \W 匹配非字母数字下划线 \s 匹配空白字符 \S 匹配非空白字符


            // 修饰符：用于指定匹配规则的附加规则
            // i 忽略大小写 比如 /hello/i.test('Hello') 返回 true
            // g 全局匹配 比如 /hello/g.test('hello hello') 返回 true

            reg.test(str) // 测试是否符合规则 返回 true
            reg.exec(str) // 返回匹配的结果，是一个数组，第一个元素是匹配的字符串，第二个是下标，第三个是原字符串，没有匹配返回 null
            console.log(str.replace(reg, '1')); // 替换匹配的字符串
            // replace 加上正则的 g === replaceAll 全部替换



        </script>

    </body>
</html>